The ability to compute a set of diverse paths through a computer network (e.g., a mesh network) is an important feature for a wide set of critical applications (e.g., high priority alarms, etc.). For instance, many critical applications rely on “1+1” protection, whereby data is transmitted from a source node to a destination node on both a primary path and a backup path. This technique provides for efficiency in terms of recovery when the data is duplicated on a set of diverse paths (e.g., two or more), and a valid copy is selected by the destination (also referred to as a “single ended protocol”). Notably, diverse paths are not only used for such 1+1 protection, but also for load balancing of traffic across the network, or for primary/backup protection, where the backup path remains unused until a failure of the primary path.
Although non trivial, various algorithms and techniques currently exist to compute a set of diverse paths while optimizing an objective function on a given network topology. For example, locating diverse paths on a known network topology is a well-known issue with several well-known algorithms (e.g., the known “Bhandari” algorithm to find edge/vertex disjoint paths, such as using modified Dijkstra, Breadth-First-Search, etc.). Such algorithms, however, require knowledge of the network topology, such as a Link State protocol. In mesh networks using reactive routing protocols, such topology is not known, illustratively, since this class of routing protocol is distance vector based. As such, these algorithms cannot be used for reactive routing protocols (e.g., AODV, DYMO, DSR) which flood explorer frames (route requests, or “RREQ” messages) to locate a path to a destination node.